﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Physis.Security {

    public interface ISecurityProvider {

        #region Properties

        Exception LastException { get; } 

        #endregion 


        #region Methods

        /// <summary>
        /// This is only for authenticating against the security provider and not for authentication or authorization against the Physis application.
        /// </summary>
        /// <param name="identity"></param>
        /// <returns></returns>
        AuthenticationResponse Authenticate (System.Security.Principal.IIdentity identity);

        List<DirectoryEntryHelper> Users (String domainName, String serverName);

        #endregion 


    }

}
